/**
 * @author zhengjiachao
 * @since 2017-4-10
 */
ADF.tool.CreationTool = function(model, config, type){
    this.model = model;
    this.config = config;
    this.type = type || AGEF.AbrazosCreationTool.LABEL;
    this.tool = new AGEF.PaletteToolModel();
    this._initTool();
    ADF.tool.CreationTool.superclass.constructor.call(this);
};

COM.util.defineClass(ADF.tool.CreationTool, ADF.ToolDescriptor,{

    /**
     * 返回一个工具的实例对象，机制会把工具放到对应的分组中
     * 返回值的格式是 {id, instance}
     * id是分组的id，工具根据id放入预先定义好的分组， instance是工具对象的一个实例
     */
    getToolModelInstance : function(){
        return {
            id : this._getGroupid(),
            instance : this.tool
        };
    },

    _getGroupid : function(){
        return ADF.tool.CreationGroup.Groupid;
    },

    _initTool : function(){
        this.tool.setToolType(this._getType());
        this.tool.setModel(this._getModel()); //设置创建的模型
        this.tool.setConfig(this._getConfig());
    },

    _getType : function(){
        return this.type;
    },

    _getModel : function(){
        return this.model;
    },

    _getConfig : function(){
        return this.config;
    }
});